1. Field of the Invention
The present invention relates to a data processing device designing method, a data processing device designing apparatus, a program and a computer readable information recording medium, and, in particular, to a data processing device designing method, a data processing device designating apparatus, a program and a computer readable information recording medium for designing a data processing device from a predetermined program.
2. Description of the Related Art
Generally, when a data processing device having predetermined functions is designed, a program for carrying out the functions is produced first, and then, a circuit designing is carried out to produce the data processing device having the functions same as those which the program has. In this case, it is possible to configure the data processing device in which the predetermined program in a form of software as it is executed by a predetermined processor. Alternatively, it is also possible to create the data processing device in a form of hardware for carrying out the processing functions of the program according to a predetermined hardware technology. Upon comparing both ways, it is possible to reduce a required execution time in the latter case in which the functions are realized in a form of hardware. On the other hand, in the former case in which the functions are executed as a result of the program in a form of software as it is executed by a processor, it is possible to miniaturize a required circuit size of hardware in a final product even though a required execution time is relatively long. Therefore, generally, both ways are combined in an appropriately rate in a data processing device in consideration of tradeoff therebetween. For this purpose, an execution time required when the predetermined program in a form of software is executed by a processor and a circuit size required when the processing functions of the program are realized in a form of hardware are calculated, and, based on the calculation results, study is carried out as to how the relevant processing functions are divided into a part realized in a form of software and the other part realized in a form of hardware. In other words, study is carried out as to divide the processing functions (specifications) of the entirety of a desired system into a first part which is realized in a form of software program to be executed by a processor and a second part functions of which are realized in a form of hardware such as an ASIC. Such an operation of dividing the required processing functions is referred to as ‘software/hardware function dividing’, hereinafter.
A system which is widely used in a cellular phone or such is a so-called include system which includes a part in a form of software and a part in a form of hardware, and, specifically, is made from a processor, a memory, an ASIC and so forth. When such an include system is designed, it is necessary to carry out various sorts of selection operations, i.e., to select a processor, a hardware technology or such. Such selection operations are referred to as ‘processor/technology selection’, hereinafter.
At a time of processor/technology selection, generally speaking, design restrictions (requirements) are given, i.e., a required execution time for a part of processing functions which is realized in a form of software as a program to be executed by a processor, a required circuit size of the other part functions of which are realized in a form of hardware such as an ASIC, or such. It is necessary to carry out the processor/technology selection fulfilling these design restrictions (requirements). Further, in such a case, it is also necessary to carry out the processor/technology selection with totally taking into account of given development period, development costs or such. Conventionally, in general, the processor/technology selection is carried out relying upon experience or intuition of an expert who has a superior technique, and after that, the software/hardware function dividing is carried out to divide the processing functions of the entire system in such a manner to fulfill the given design restrictions.
At a time of the software/hardware function dividing, a designer should divide the processing functions of the system in such a manner to fulfill the given design restrictions (the given required execution time for the part realized in a form of software of a program executed by a processor, the given required circuit size for the part functions of which are realized in a form of hardware such as an ASIC, or such). According to the prior art such as that disclosed by Japanese Laid-open Patent Application No. 4-199439, the required execution time for the part realized in a form of software of a program executed by a processor is calculated in such a manner that a structure of the given program including a plurality of instructions is analyzed and possible processing paths are determined therefrom; execution contents of the program are analyzed for each of the thus-determined processing paths; and an execution time is automatically calculated for each of the processing paths. Furthermore, conventionally, the required circuit size for the part functions of which are realized in a form of hardware such as an ASIC is calculated in such a manner that hardware is actually generated by means of a so-called function compiling tool which is software prepared for generating hardware from a give program, and the thus-generated hardware is used to calculate the circuit size.
Further, conventionally, for the part to be realized in a form of software program carried out by a processor, generally speaking, after the processor/technology selection and the software/hardware function dividing are determined, simulation is carried out with the use of a so-called instruction set simulator prepared for the target processor, thereby the required execution time is obtained with higher accuracy, and based thereon, the program is tuned if necessary. In this case, in order to calculate the required execution time of the program in the simulation, test data should be prepared with which the program may be executed in such a manner that the execution time may become maximum. Also in this case, conventionally, a processing path such that therein the program may be executed in such a manner that the execution time may become maximum is extracted relying upon experience or intuition of an expert, and the test data is produced with which the program is executed in the thus-specified processing path.